﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using Persistencia_y_capa_de_negocio;
using System.Text.RegularExpressions;

namespace webclonegame.FormulariosPrivada
{
    public partial class Formulario_Resumen : System.Web.UI.Page
    {
        ENUsuario usActual;
        protected void Page_Load(object sender, EventArgs e)
        {
            //Response.Write("<script>alert('mensaje');</script>");
            usActual = (ENUsuario)Session["UsuarioActual"];
            CADEdificioUsuario.Instancia.obtenerEdificiosUsuario(usActual.IDUsuario);
            if (usActual.NombrePlaneta == "")
                nombrePlanetaUsuario.Text = "Homeworld";
            else
                nombrePlanetaUsuario.Text = usActual.NombrePlaneta;
            cuadranteUsuario.Text = usActual.CXCuadranteUsuario + ":" + usActual.CYCuadranteUsuario;
            coordenadaUsuario.Text = usActual.CXBaseUsuario + ":" + usActual.CYBaseUsuario;
            lbPuntos.Text = usActual.CalcularPoder.ToString();
            // Una vez cargados los datos comprobamos qué posibles eventos se están realizando ahora mismo.
            // Si hay eventos pendientes tendrán que solucionarse.
            CADEvento.Instancia.GestionaCaducados();

            // Una vez hemos gestionado los eventos caducados, miramos si tenemos un evento del tipo actual.
            ENEvento ev = CADEvento.Instancia.getEventoUsuarioDefensa(usActual.IDUsuario);
            if (ev.Id != -1)
            {
                EnEdificioUsuario eeu = CADEdificioUsuario.Instancia.obtenerEdificioUsuario(usActual.IDUsuario, ev.IdObjeto);
                ENEdificio edificio = CADEdificio.Instancia.getEdificioporID(ev.IdObjeto);
                nombreDefensa.Text = edificio.Nombre;
                nivelDefensa.Text = "Actualizando a nivel " + (eeu.NivelEd + 1) + ".";
                int tiempo = (int)(ev.FechaFin - DateTime.Now).TotalSeconds;
                int segundos = tiempo % 60;
                int minutos = tiempo / 60;
                tiempoRestanteDefensa.Text = "Tiempo restante: " + minutos + "m " + segundos + "s.";
                imagenDefensa.ImageUrl = @"ImagenesPrivada/edificios/" + edificio.Nombre + ".png";
            }
            else
            {
                nombreDefensa.Text = "No hay defensas actualizandose.";
                imagenDefensa.ImageUrl = @"../estilo/1.png";
                nivelDefensa.Text = "";
                tiempoRestanteDefensa.Text = "";
            }

            ev = CADEvento.Instancia.getEventoUsuarioRecuros(usActual.IDUsuario);
            if (ev.Id != -1)
            {
                ENEdificio recurso = CADEdificio.Instancia.getEdificioporID(ev.IdObjeto);
                EnEdificioUsuario eeu = CADEdificioUsuario.Instancia.obtenerEdificioUsuario(usActual.IDUsuario, ev.IdObjeto);
                nombreRecurso.Text = recurso.Nombre;
                int tiempo = (int)(ev.FechaFin - DateTime.Now).TotalSeconds;
                nivelRecurso.Text = "Actualizando a nivel " + (eeu.NivelEd + 1) + ".";
                int segundos = tiempo % 60;
                int minutos = tiempo / 60;
                tiempoRestanteRecurso.Text = "Tiempo restante: " + minutos + "m " + segundos + "s.";
                imagenRecurso.ImageUrl = @"ImagenesPrivada/edificios/" + recurso.Nombre + ".png";
            }
            else
            {
                nombreRecurso.Text = "No hay recursos actualizandose.";
                imagenRecurso.ImageUrl = @"../estilo/1.png";
                nivelRecurso.Text = "";
                tiempoRestanteRecurso.Text = "";
            }
            //Astillero.
            ev = CADEvento.Instancia.getEventoUsuarioAstillero(usActual.IDUsuario);
            if (ev.Id != -1)
            {
                string unidad = CADUnidad.Instancia.getNombreUnidad(ev.IdObjeto);
                EnEdificioUsuario eeu = CADEdificioUsuario.Instancia.obtenerEdificioUsuario(usActual.IDUsuario, ev.IdObjeto);
                nombreAstillero.Text = unidad.Trim();
                int tiempo = (int)(ev.FechaFin - DateTime.Now).TotalSeconds;
                nivelAstillero.Text = "Creando " + (eeu.NivelEd + 1) + " unidad(es).";
                int segundos = tiempo % 60;
                int minutos = tiempo / 60;
                tiempoRestanteAstillero.Text = "Tiempo restante: " + minutos + "m " + segundos + "s.";
                imagenAstillero.ImageUrl = @"ImagenesPrivada/unidades/" + unidad.Trim() + ".png";
            }
            else
            {
                nombreAstillero.Text = "No hay unidades en proceso.";
                imagenAstillero.ImageUrl = @"../estilo/1.png";
                nivelAstillero.Text = "";
                tiempoRestanteAstillero.Text = "";
            }

            //Investigación.
            ev = CADEvento.Instancia.getEventoUsuarioInvestigacion(usActual.IDUsuario);
            if (ev.Id != -1)
            {
                EnEdificioUsuario eeu = CADEdificioUsuario.Instancia.obtenerEdificioUsuario(usActual.IDUsuario, ev.IdObjeto);
                ENEdificio edificio = CADEdificio.Instancia.getEdificioporID(ev.IdObjeto);
                nombreInvestigacion.Text = edificio.Nombre;
                nivelInvestigacion.Text = "Actualizando a nivel " + (eeu.NivelEd + 1) + ".";
                int tiempo = (int)(ev.FechaFin - DateTime.Now).TotalSeconds;
                int segundos = tiempo % 60;
                int minutos = tiempo / 60;
                tiempoRestanteInvestigacion.Text = "Tiempo restante: " + minutos + "m " + segundos + "s.";
                imagenInvestigacion.ImageUrl = @"ImagenesPrivada/edificios/" + edificio.Nombre + ".png";
            }
            else
            {
                nombreInvestigacion.Text = "No hay investigaciones pendientes.";
                imagenInvestigacion.ImageUrl = @"../estilo/1.png";
                nivelInvestigacion.Text = "";
                tiempoRestanteInvestigacion.Text = "";
            }
        }
    }
}
